package com.eet.order.service;

/**
 * @author zheng.zhang
 */
public interface OrderService {

    /**
     * 创建订单(发布订阅)
     *
     * @param userId    用户ID
     * @param productId 产品ID
     * @param orderNum  订单数量
     * @return 订单编号
     */
    String makeFanoutOrder(String userId, String productId, int orderNum);

    /**
     * 创建订单(direct)
     *
     * @param userId    用户ID
     * @param productId 产品ID
     * @param orderNum  订单数量
     * @return 订单编号
     */
    String makeDirectOrder(String userId, String productId, int orderNum);

    /**
     * 创建订单(topic)
     *
     * @param routeingKey 路由键
     * @param productId   产品ID
     * @param orderNum    订单数量
     * @return 订单编号
     */
    String makeTopicOrder(String routeingKey, String productId, int orderNum);

    /**
     * 创建订单(过期时间+死信队列)
     *
     * @param userId    用户ID
     * @param productId 产品ID
     * @param orderNum  订单数量
     * @return 订单编号
     */
    String makeDeadOrder(String userId, String productId, int orderNum);
}
